﻿
using System.ComponentModel;
namespace CardGamesLibrary.Cards
{
    
    public interface ICardPile<TCard> : ICardSet<TCard>, INotifyPropertyChanged
        where TCard : Card
    {
        int IndexOf(TCard item);
        void Insert(int index, TCard item);
        void RemoveAt(int index);
        void Add(TCard item);
        bool CanAdd(TCard item);
        void Clear();
        bool Contains(TCard item);
        int Count { get; }
        bool Remove(TCard item);

        TCard this [int index] {get;}
        TCard First();
        TCard Last();
    }
}